object scalaWork {
  //定义一个gcd函数，计算两个数的最大公因数
  def gcd(x:Int,y:Int):Int={
    if(x % y == 0) y
    else gcd(x,x % y)
  }
  //sum1函数计算指定区间的值的和
  def sum1(a:Int,b:Int):Int = {
    var sum = 0
    for (i <- a to b){
      sum = sum + i
    }
    sum
  }
  //sum2函数计算指定区间的值的平方的和
  def sum2(a:Int,b:Int):Int = {
    var sum = 0
    for (i <- a to b){
      sum = sum + i * i
    }
    sum
  }
  //sum3函数计算指定区间的值的立方的和
  def sum3(a:Int,b:Int):Int = {
    var sum = 0
    for (i <- a to b){
      sum = sum + i * i * i
    }
    sum
  }
  //返回杨辉三角第 i行第 j列数字。（行和列均从1开始）
  def YangHuiTri(i:Int,j:Int):Int = {
    if(i >= 1 && j >= 1 && j <= i){
      if(j == 1 || j == i)  1
      else YangHuiTri(i - 1,j - 1) + YangHuiTri(i - 1,j)
    }
    else 0  //对异常的输入参数返回0
  }
  //打印杨辉三角
  def printYangHuiTri(N:Int):Unit = {
    for(i <- 1 to N){
      for(j <- 1 to i){
        for(k <- 1 to N-i;if j==1)  print(" ")//打印每行第一个数字前的空格
        print(YangHuiTri(i,j))//打印第 i行第 j列数字
        print(" ")//每个数字后打印一个空格
      }
      print("\n")
    }
  }

  def main(args: Array[String]): Unit = {
    println(gcd(24,12));
    println(sum1(1,4)); println(sum2(1,4)); println(sum3(1,4))
    //打印杨辉三角
    printYangHuiTri(7)
  }
}